//package com.it.base.common.swagger;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import javax.xml.ws.Response;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
//import com.it.base.common.variable.SystemVariable;
//
//import io.swagger.annotations.ApiOperation;
//import springfox.documentation.builders.ApiInfoBuilder;
//import springfox.documentation.builders.ParameterBuilder;
//import springfox.documentation.builders.PathSelectors;
//import springfox.documentation.builders.RequestHandlerSelectors;
//import springfox.documentation.service.ApiInfo;
//import springfox.documentation.service.Contact;
//import springfox.documentation.service.Parameter;
//import springfox.documentation.spi.DocumentationType;
//import springfox.documentation.spring.web.plugins.Docket;
//import springfox.documentation.swagger2.annotations.EnableSwagger2;
//
//@Configuration
//@EnableSwagger2
//@EnableSwaggerBootstrapUI
//@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
//public class SwaggerConfig2 {
//
//	/** 系统基础配置 */
//	@Autowired
//	private SystemVariable systemVariable;
//
//	/** 是否开启swagger */
//	@Value("${swagger.enable}")
//	private boolean enabled;
//
//	/** 设置请求的统一前缀 */
//	@Value("${swagger.pathMapping}")
//	private String pathMapping;
//
//	@Bean
//	public Docket docket() {
//		// 可以通过此方式添加全局header
//		ParameterBuilder parameterBuilder = new ParameterBuilder();
//		List<Parameter> heads = new ArrayList<Parameter>();
////		parameterBuilder.name("token")//
////				.description("访问令牌")//
////				.modelRef(new ModelRef("string"))//
////				.parameterType("header")//
////				.required(false)//
////				.build();
////		heads.add(parameterBuilder.build());
//
//		return new Docket(DocumentationType.SWAGGER_2)//
//				.enable(enabled) // 是否启用Swagger
//				.apiInfo(apiInfo()) // 用来创建该API的基本信息，展示在文档的页面中（自定义展示的信息）
//				.genericModelSubstitutes(Response.class)//
//				.forCodeGeneration(true)//
//				.select()// 设置哪些接口暴露给Swagger展示
//				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) // 扫描所有有注解的api，用这种方式更灵活
//				// .apis(RequestHandlerSelectors.basePackage(SystemConstant.BASECORE))//
//				.paths(PathSelectors.any())// 扫描所有
//				.build()//
//				/* 设置安全模式，swagger可以设置访问token */
//				.globalOperationParameters(heads);
////				.securitySchemes(securitySchemes())//
////				.securityContexts(securityContexts())//
////				.pathMapping(pathMapping);
//	}
//
//	/**
//	 * 添加摘要
//	 * 
//	 * @return
//	 */
//	private ApiInfo apiInfo() {
//		return new ApiInfoBuilder()//
//				.title("基础平台接口文档")// 设置标题
//				.description("采用swagger2")// 描述
//				.contact(new Contact(systemVariable.getName(), null, null))// 作者信息
//				.version("版本号:" + systemVariable.getVersion())// 版本
//				.build();
//	}
//
//}
